﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using 垃圾小游戏.class1;

namespace 垃圾小游戏.class2
{
    /// <summary>
    /// 这是一个开始场景和结束场景的基类（因为他们除了标题以外没什么区别）
    /// 同时也是一个抽象基类
    /// </summary>
    abstract class BeginOrEndBaseScence : IScenceUPdate
    {
        protected int nowSelndex = 0;//当前选中的选项
        protected string strTitle;
        protected string strone;
        protected string strtwo;

        public abstract void EnterJDoingSomthing();//虚函数（抽象函数）
        public void Update()
        {
            //开始和结束场景的 游戏逻辑
            //选择当前的选项 然后 监听 键盘输入wsj
            Console.ForegroundColor = ConsoleColor.White;//标题颜色为白色
            //显示标题
            Console.SetCursorPosition(Game.w / 2 - strTitle.Length,5);//设置光标位置
            Console.WriteLine(strTitle);//标题内容
            //显示下方的选项
            Console.SetCursorPosition(Game.w / 2 - strone.Length, 8);
            Console.ForegroundColor = nowSelndex == 0 ? ConsoleColor.Red : ConsoleColor.White;
            Console.Write(strone);
            Console.SetCursorPosition(Game.w / 2 - 24, 10);
            Console.ForegroundColor = nowSelndex == 1 ? ConsoleColor.Red : ConsoleColor.White;
            Console.Write(strtwo);
            //检测输入
            switch(Console.ReadKey(true).Key)
            {
                case ConsoleKey.W:
                    --nowSelndex;
                    if (nowSelndex < 0)
                    {
                        nowSelndex = 0;
                    }
                    break;
                case ConsoleKey.S:
                    ++nowSelndex;
                    if (nowSelndex > 1)
                    {
                        nowSelndex = 1;
                    }
                    break;
                case ConsoleKey.J:
                    EnterJDoingSomthing();//具体执行内容从子类实现
                    break;
            }
        }
    }
}
